// api/modules/device.js - 智能体(设备)模块API
import request from '../index'

export default {
  // 获取私有设备列表
  getPrivateDevices() {
    return request.get('/device/private')
  },
  getDeviceById(id) {
    return request.get(`/device/${id}`)
  },
  // 获取公共设备列表
  getPublicDevices(params) {
    return request.get('/device/public', params)
      .then(res => {
        // 标准化数据处理
        if (res.code === 200 && res.data && res.data.records) {
          res.data.records = res.data.records.map(item => {
            // 确保创建者名称存在
            if (!item.creatorName && item.userId === null) {
              item.creatorName = '系统';
            } else if (!item.creatorName) {
              item.creatorName = item.creatorName || `用户${item.userId || ''}`;
            }
            return item;
          });
        }
        return res;
      });
  },
  
  // 获取收藏的设备列表 - 修正API路径
  getCollectedDevices() {
    // 修改为服务器支持的正确路径
    return request.get('/device/collection/list')
      .then(res => {
        // 标准化数据处理
        if (res.code === 200 && res.data) {
          const records = Array.isArray(res.data) ? res.data : 
                         (res.data.records ? res.data.records : []);
          
          records.forEach(item => {
            // 确保创建者名称存在
            if (!item.creatorName && item.userId === null) {
              item.creatorName = '系统';
            } else if (!item.creatorName) {
              item.creatorName = `用户${item.userId || ''}`;
            }
          });
          
          if (Array.isArray(res.data)) {
            res.data = records;
          } else if (res.data.records) {
            res.data.records = records;
          }
        }
        return res;
      });
  },
  
  // 收藏设备
  collectDevice(id) {
    return request.post(`/device/collection/${id}`)
  },
  
  // 取消收藏
  uncollectDevice(id) {
    return request.delete(`/device/collection/${id}`)
  },
  
  // 创建设备
  createDevice(data) {
    return request.post('/device', data)
  },
  
  // 更新设备
  updateDevice(id, data) {
    return request.put(`/device/${id}`, data)
  },
  
  // 删除设备
  deleteDevice(id) {
    return request.delete(`/device/${id}`)
  },
  
  // 上传设备图标
  uploadIcon(filePath) {
    return request.upload('/device/upload/icon', filePath, 'file')
  }
}